The present invention relates to the field of managing the transmission of data between devices. More particularly, the present invention relates to the field of managing allocation of resources and bandwidth capabilities during the transmission of data between devices.
The IEEE standard, xe2x80x9cIEEE 1394 Standard For A High Performance Serial Bus,xe2x80x9d Draft ratified in 1995, is an international standard for implementing an inexpensive high-speed serial bus architecture which supports both asynchronous and isochronous format data transfers. Isochronous data transfers are real-time transfers which take place such that the time intervals between significant instances have the same duration at both the transmitting and receiving applications. Each packet of data transferred isochronously is transferred in its own time period. The IEEE 1394-1995 standard bus architecture provides multiple channels for isochronous data transfer between applications. A six bit channel number is broadcast with the data to ensure reception by the appropriate application. This allows multiple applications to simultaneously transmit isochronous data across the bus structure. Asynchronous transfers are traditional data transfer operations which take place as soon as possible and transfer an amount of data from a source to a destination.
The IEEE 1394-1995 standard provides a high-speed serial bus for interconnecting digital devices thereby providing a universal I/O connection. The IEEE 1394-1995 standard defines a digital interface for the applications thereby eliminating the need for an application to convert digital data to analog data before it is transmitted across the bus. Correspondingly, a receiving application will receive digital data from the bus, not analog data, and will therefore not be required to convert analog data to digital data. The cable required by the IEEE 1394-1995 standard is very thin in size compared to other bulkier cables used to connect such devices. Devices can be added and removed from an IEEE 1394-1995 bus while the bus is active. If a device is so added or removed the bus will then automatically reconfigure itself for transmitting data between the then existing nodes. A node is considered a logical entity with a unique address on the bus structure. Each node provides an identification ROM, a standardized set of control registers and its own address space.
The IEEE 1394-1995 standard defines a protocol as illustrated in FIG. 1. This protocol includes a serial bus management block 10 coupled to a transaction layer 12, a link layer 14 and a physical layer 16. The physical layer 16 provides the electrical and mechanical connection between a device or application and the IEEE 1394-1995 cable. The physical layer 16 also provides arbitration to ensure that all devices coupled to the IEEE 1394-1995 bus have access to the bus as well as actual data transmission and reception. The link layer 14 provides data packet delivery service for both asynchronous and isochronous data packet transport. This supports both asynchronous data transport, using an acknowledgement protocol, and isochronous data transport, providing real-time guaranteed bandwidth protocol for just-in-time data delivery. The transaction layer 12 supports the commands necessary to complete asynchronous data transfers, including read, write and lock. The serial bus management block 10 contains an isochronous resource manager for managing isochronous data transfers. The serial bus management block 10 also provides overall configuration control of the serial bus in the form of optimizing arbitration timing, guarantee of adequate electrical power for all devices on the bus, assignment of the cycle master, assignment of isochronous channel and bandwidth resources and basic notification of errors.
An exemplary IEEE 1394-1995 consumer entertainment system network including a settop box, a satellite dish, a television and a digital video cassette recorder (VCR) is illustrated in FIG. 2. The settop box 20 is coupled to receive broadcast transmissions from the satellite dish 18 by the IEEE 1394-1995 cable 26. Typically, these broadcasts are transmitted from the satellite dish 18 to the settop box 20 in an MPEG format. The settop box 20 is coupled to the television 22 by the IEEE 1394-1995 cable 28. The television 22 is coupled to the digital VCR 24 by the IEEE 1394-1995 cable 30. Through the single plug coupled to the IEEE 1394-1995 cable 28, the tuner 20 transmits broadcasts from the satellite dish 18 to the television 22 and the digital VCR 24.
The AV/C Digital Interface Command Set is a command set used for transactions between consumer audio/video equipment over an IEEE 1394-1995 serial bus. Neither the IEEE 1394-1995 serial bus nor the AV/C Command Set provide a master-slave relationship between the devices coupled within the IEEE 1394-1995 serial bus network. Instead, both the IEEE 1394-1995 serial bus and the AV/C Command Set operate based on the cooperative coexistence of devices within the network.
As discussed above, an IEEE 1394-1995 device includes the capability to transmit and receive isochronous data over multiple channels. However, in current implementations, certain IEEE 1394-1995 devices are being built with the capability to only transmit isochronous data over a single channel through a single source plug and receive isochronous data over a single channel through a single destination plug. This implementation allows manufacturers to make less expensive devices, but can cause problems and conflicts between devices sharing the data that is transmitted through the single source plug. Certain problems are envisioned in the manner that data streams will be controlled over the IEEE 1394-1995 serial bus particularly in the areas of multiple simultaneous selections and bandwidth management and device overflow. Multiple simultaneous selections present a problem when several controllers are utilizing a single source, such as a tuner subunit. There is presently no fixed relationship between the amount of information that can be selected by a sourcing device, such as the tuner 20, and the means by which that information is made available to other subunits outside of the sourcing device, over the IEEE 1394-1995 serial bus, through the sourcing device""s source plugs. Current implementations however, allow a sourcing device to support only a single source plug.
As illustrated within the exemplary network of FIG. 2, the tuner or settop box 20 is coupled to the satellite dish 18 by the IEEE 1394-1995 cable 26 to receive broadcast transmissions from the satellite dish 18. The tuner 20 through a single source plug provides the broadcast transmissions to the television 22 and the digital VCR 24 over the IEEE 1394-1995 serial bus. It is possible for the tuner subunit 20 to receive, decode and distribute several select broadcasts received from the satellite dish 18, thereby supporting many individual selection requests. This support is limited only by the bandwidth of the IEEE 1394-1995 serial bus and the capabilities of the tuner 20. For example, the tuner 20 can simultaneously receive, decode and distribute the CNN(copyright) and BBC(copyright) broadcast services. Because there is only one plug through which the tuner 20 is transmitting, the data representing these broadcasts is multiplexed from the tuner 20 through the single source plug, with alternating packets of both broadcasts on the single IEEE 1394-1995 isochronous channel and distributed to the television 22 and the digital VCR 24, as appropriate.
Problems arise when the data on the shared isochronous channel conflicts or exceeds the bandwidth of one of the devices. Illustrative of the problems that can arise in such a situation is the example of two controllers selecting the same service at the same time. In such a situation, both the television 22 and the digital VCR 24 request that the tuner 20 transmit the same service, such as the CNN(copyright) broadcast. The tuner 20 then receives, decodes and transmits the CNN(copyright) broadcast to the television 22 and the digital VCR 24. However, if the television 22 later sends a request to have the CNN(copyright) broadcast selection removed, the tuner 20 will remove the service from the data transmitted through the single source plug over the IEEE 1394-1995 serial bus. This process of removing the selection from the data transmitted by the tuner 20, results in the service being removed from the data transmitted through the source plug altogether, even though the other controller (digital VCR 24) still expected the tuner 20 to transmit the service. Currently controllers, such as the television 22 and the digital VCR 24, have no way of sharing a sourcing device""s resources in a manner that prevents or minimizes this kind of a conflict.
A diverse range of products can be implemented with the ability to connect to an IEEE 1394-1995 serial bus network. These devices can have capabilities and functionality ranging from very simple to very complex. The IEEE 1394-1995 serial bus allows a collection of devices to work together in a high bandwidth, distributed environment to maximize the overall efficiency and functionality of the network. This allows manufacturers to remove expensive pieces of functionality from one device and locate that functionality in another device on the network, instead of duplicating this functionality in all devices on the network. While some of the devices have limited functionality and are relatively inexpensive, such devices require the support and interaction of other devices in order to bring the full functionality of the devices within the network to the user.
A tuner 20 is typically required to have decoding capability. This means that a storage device, such as the digital VCR 24, coupled within an IEEE 1394-1995 serial bus network with the tuner 20, can be built without a decoder. The digital VCR 24 would then rely on the tuner 20 to perform any necessary decoding of data received or transmitted by the digital VCR 24. In such a network, when the user records a transmission from the tuner 20, the digital VCR 24 is only used as a storage device, thereby storing whatever is transmitted to it by the tuner 20. When the user later wants to view the recorded transmission, the digital VCR 24 transmits the stored transmission back to the tuner 20 for decoding. The tuner 20 then decodes the recorded transmission and transmits the decoded data to the appropriate presentation device, such as the television 22. Problems arise in this scenario when the devices receiving data from the tuner 20 request services having a bandwidth which would overload the digital VCR 24. The digital VCR 24 can request that the tuner transmit services such as the CNN(copyright) and BBC(copyright) broadcasts, so that the digital VCR 24 can record these transmissions for later playback. The CNN(copyright) and BBC(copyright) broadcasts are then transmitted from the tuner 20 through the single source plug, over the IEEE 1394-1995 serial bus network, on the isochronous channel in use. In this example, the digital VCR 24 has the available bandwidth to record both of these broadcasts together. However, if the television 22, then requests that the tuner 20 also transmit another service or selection, the digital VCR 24 may not have the capacity to handle the additional bandwidth. In this case, the results are currently unpredictable, and it is likely that the digital VCR 24 will not properly record the transmission including the CNN(copyright) and BBC(copyright) broadcasts. Currently controllers have no way of sharing the tuner""s resources in a manner that prevents or ensures that the bandwidth of another device is not exceeded with the addition of new selections.
A method of distributing content selections within a single data stream to a network including a plurality of devices comprises the steps of maintaining a record which associates content selections with a requesting device, receiving a clear command from a clearing device, wherein the clear command includes a scope notification specifying whether or not the clear command is to clear a specified content selection regardless of the devices associated with the specified content selection, disassociating all devices from the specified content selection if the scope notification specifies that the clear command is to clear the specified content selection regardless of the devices associated with the specified content selection, disassociating only the clearing device from the specified content selection if the scope notification does not specify that the clear command is to clear the specified content selection regardless of the devices associated with the specified content selection and clearing the specified content selection if no devices are associated with the specified content selection. The scope notification is preferably a single bit. The network is preferably an IEEE 1394 serial bus network. The single data stream is transmitted through a single source plug of a sourcing device. The plurality of devices preferably includes one or more sourcing devices and one or more listening devices. The requesting device can be one of the one or more listening devices.
A method of providing content selections to one or more listening devices from a sourcing device within a single data stream comprises the steps of receiving a content command from a requesting device to add a requested content selection to the single data stream, wherein the content command includes a warning notification specifying whether or not the content command is to be executed even if the requested content selection will exceed bandwidth capabilities of any one of the sourcing device and the listening devices, determining if addition of the requested content selection to the single data stream will exceed bandwidth capabilities of any one of the sourcing device and the listening devices, clearing one or more existing content selections within the single data stream and adding the requested content selection to the single data stream if the warning notification specifies that the content command is to be executed even if the requested content selection will exceed bandwidth capabilities of any one of the sourcing device and the listening devices and it is determined that addition of the requested content selection will exceed the bandwidth capabilities of any one of the sourcing device and the listening devices and rejecting the content command if the warning notification specifies that the content command is not to be executed if the requested content selection will exceed bandwidth capabilities of any one of the sourcing device and the listening devices and it is determined that addition of the requested content selection will exceed the bandwidth capabilities of any one of the sourcing device and the listening devices. The method further includes the step of sending an error message from the sourcing device to the requesting device if the warning notification specifies that the content command is not to be executed if the requested content selection will exceed the bandwidth capabilities of any one of the sourcing device and the listening devices and it is determined that addition of the requested content selection will exceed the bandwidth capabilities of any one of the sourcing device and the listening devices. The warning notification is preferably a single bit. The listening devices and the sourcing device are preferably coupled together within a network. Preferably, the network is an IEEE 1394 serial bus network. The single data stream is transmitted through a single source plug of the sourcing device.
A sourcing device for providing content selections to one or more listening devices within a single data stream comprises an interfacing circuit configured to couple to the one or more listening devices and a controlling circuit coupled to the interfacing circuit for controlling the content selections that are included within the single data stream, wherein the controlling circuit maintains a record which associates content selections with a requesting device. The interfacing circuit includes a source plug through which the single data stream is transmitted to the one or more listening devices. A clearing device clears a previous content selection by sending a clear command to the sourcing device and further wherein the clear command includes a scope notification specifying whether or not the clear command is to clear a specified content selection regardless of the devices associated with the specified content selection.
The controlling circuit disassociates all devices from the specified content selection after receiving the clear command if the scope notification specifies that the clear command is to clear the previous content selection regardless of the devices associated with the specified content selection. The controlling circuit disassociate only the clearing device from the specified content selection if the scope notification does not specify that the clear command is to clear the specified content selection regardless of the devices associated with the specified content selection. The controlling circuit clear the specified content selection if no devices are associated with the specified content selection.
A requesting device adds a requested content selection by sending a content command to the sourcing device including a warning notification specifying whether or not the content command is to be executed even if the requested content selection will exceed bandwidth capabilities of any one of the sourcing device and the listening devices. The controlling circuit clears one or more existing content selections within the single data stream and adds the requested content selection to the single data stream if the warning notification specifies that the content command is to be executed even if the requested content selection will exceed bandwidth capabilities of any one of the sourcing device and the listening devices and it is determined that addition of the requested content selection will exceed the bandwidth capabilities of any one of the sourcing device and the listening devices. The controlling circuit rejects the content command if the warning notification specifies that the content command is not to be executed if the requested content selection will exceed bandwidth capabilities of any one of the sourcing device and the listening devices and it is determined that addition of the requested content selection will exceed the bandwidth capabilities of any one of the sourcing device and the listening devices.
The controlling circuit sends an error message to the requesting device if the warning notification specifies that the content command is not to be executed if the requested content selection will exceed the bandwidth capabilities of any one of the sourcing device and the listening devices and it is determined that addition of the requested content selection will exceed the bandwidth capabilities of any one of the sourcing device and the listening devices. The warning notification is preferably a single bit. The scope notification is preferably a single bit. The listening devices and the sourcing device are preferably coupled together within a network. The network is preferably an IEEE 1394 serial bus network. The requesting device can be one of the listening devices.
A system network comprises a plurality of listening devices coupled together within a network to send and receive communications and a sourcing device coupled to the plurality of listening devices to provide content selections to the listening devices within a single data stream, the sourcing device includes an interfacing circuit including a source plug coupled to the network through which the single data stream is transmitted and controlling circuit coupled to the interfacing circuit for controlling the content selections that are included within the single data stream. The controlling circuit maintains a record which associates content selections with a requesting device, wherein a clearing device clears a previous content selection by sending a clear command to the sourcing device. The clear command includes a scope notification specifying whether or not the clear command is to clear a specified content selection regardless of the devices associated with the specified content selection. A requesting device adds a requested content selection to the single data stream by sending a content command to the sourcing device including a warning notification specifying whether or not the content command is to be executed even if the requested content selection will exceed bandwidth capabilities of any one of the sourcing device and the listening devices.
The network is preferably an IEEE 1394 serial bus network. The controlling circuit clears one or more existing content selections within the single data stream and adds the requested content selection to the single data stream if the warning notification specifies that the content command is to be executed even if the requested content selection will exceed bandwidth capabilities of any one of the sourcing device and the listening devices and it is determined that addition of the requested content selection will exceed the bandwidth capabilities of any one of the sourcing device and the listening devices. The controlling circuit rejects the content command if the warning notification specifies that the content command is not to be executed if the requested content selection will exceed bandwidth capabilities of any one of the sourcing device and the listening devices and it is determined that addition of the requested content selection will exceed the bandwidth capabilities of any one of the sourcing device and the listening devices. The controlling circuit sends an error message to the requesting device if the warning notification specifies that the content command is not to be executed if the requested content selection will exceed the bandwidth capabilities of any one of the sourcing device and the listening devices and it is determined that addition of the requested content selection will exceed the bandwidth capabilities of any one of the sourcing device and the listening devices.
The controlling circuit disassociates all devices from the specified content selection after receiving the clear command if the scope notification specifies that the clear command is to clear the previous content selection regardless of the devices associated with the specified content selection. The controlling circuit disassociates only the clearing device from the specified content selection if the scope notification does not specify that the clear command is to clear the specified content selection regardless of the devices associated with the specified content selection. The controlling circuit will clear the specified content selection if no devices are associated with the specified content selection. The requesting device can be one of the plurality of listening devices.
A method of distributing content selections within a single data stream to a network including a plurality of devices comprises the steps of adding a content selection requested by a requesting device to the single data stream, incrementing a count value when the step of adding is completed, decrementing the count value when a clear command for the content selection is received and clearing the content selection from the single data stream when the count value is equal to zero. The clear command includes a scope notification specifying whether or not the clear command is to clear the content selection regardless of the count value. The method further comprises the step of clearing the content selection if the clear command is to clear the content selection regardless of the count value. The scope notification is preferably a single bit. The network is preferably an IEEE 1394 serial bus network. The single data stream is transmitted through a single source plug of a sourcing device. The plurality of devices preferably includes one or more sourcing devices and one or more listening devices. The requesting device can be one of the one or more listening devices.